Fully Qualified Names এবং Aliases

Computer Programming - ক্লোজার (Clojure) Namespaces এবং Scope (Namespaces and Scope in Clojure) |
238
238

Fully Qualified Names (FQNs) এবং Aliases in Clojure

ক্লোজার (Clojure) প্রোগ্রামিং ভাষায় Fully Qualified Names (FQNs) এবং Aliases ব্যবহার করা হয় যাতে কোডটি আরও পরিষ্কার এবং সুসংগঠিত হয়। এই ধারণাগুলো নামের সংঘর্ষ (name clashes) এবং মডিউল ব্যবস্থাপনা (module management) থেকে রক্ষা পেতে সাহায্য করে। Clojure-এ বিভিন্ন লাইব্রেরি এবং স্পেসিফিক নামের ব্যবহারের জন্য এই দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য ব্যবহার করা হয়।


১. Fully Qualified Names (FQNs)

Fully Qualified Names (FQNs) হলো একটি নির্দিষ্ট নাম স্পেস (namespace) সহ সম্পূর্ণ নাম যা একটি ক্লাস, ফাংশন বা ভ্যারিয়েবলকে সুনির্দিষ্টভাবে চিহ্নিত করে। Clojure-এ, যখন কোনো ক্লাস বা ফাংশন অন্যান্য লাইব্রেরি বা নামস্পেসে থাকে, তখন তাদের ব্যবহার করার জন্য তাদের সম্পূর্ণ নাম দিতে হয়।

FQN এর গঠন:

namespace/name
  • namespace: এটি হলো নামস্পেসের নাম যেখানে ফাংশন বা ভ্যারিয়েবল সংরক্ষিত থাকে।
  • name: এটি হলো ফাংশন, ভ্যারিয়েবল বা ক্লাসের নাম।

উদাহরণ: FQN ব্যবহার

ধরা যাক, আমরা clojure.string নামস্পেস থেকে join ফাংশন ব্যবহার করতে চাই:

(clojure.string/join "-" ["Hello" "World"])  ; আউটপুট: "Hello-World"

এখানে, clojure.string/join হলো একটি Fully Qualified Name (FQN), যা join ফাংশনকে clojure.string নামস্পেসের অন্তর্গত হিসাবে চিহ্নিত করে।


২. Aliases (এলিয়াস)

ক্লোজারে alias ব্যবহার করে আপনি কোনো দীর্ঘ নামস্পেসের জন্য ছোট নাম (shortcut) নির্ধারণ করতে পারেন। এটি কোড লেখা এবং পড়া সহজ করে তোলে। require ফাংশন ব্যবহার করে নামস্পেসে একটি এলিয়াস অ্যাসাইন করা হয়। এলিয়াস ব্যবহারের ফলে কোডটি আরও পরিষ্কার এবং কমপ্যাক্ট হয়।

এলিয়াস ব্যবহার:

(ns my-namespace
  (:require [clojure.string :as str]))  ; 'clojure.string' কে 'str' নাম দিয়ে এলিয়াস করলাম

(str/join "-" ["Hello" "World"])  ; আউটপুট: "Hello-World"

এখানে, আমরা clojure.string নামস্পেসকে str নামে এলিয়াস দিয়েছি, যাতে clojure.string/join লেখার পরিবর্তে শুধুমাত্র str/join ব্যবহার করতে পারি। এটি কোডের পাঠযোগ্যতা এবং লিখনক্ষমতা বৃদ্ধি করে।


৩. require এবং as Keyword

Clojure-এ নামস্পেস ব্যবহার করার জন্য সাধারণভাবে require ফাংশনটি ব্যবহার করা হয়। এই ফাংশনটি আপনার নামস্পেসে অন্য একটি নামস্পেসকে অন্তর্ভুক্ত (include) করার জন্য ব্যবহৃত হয় এবং সেখানে এলিয়াস অ্যাসাইন করা সম্ভব।

সিনট্যাক্স:

(ns your-namespace
  (:require [some.namespace :as alias]))

এখানে, some.namespace নামস্পেসের ফাংশন বা ক্লাসগুলির জন্য alias নামটি ব্যবহার করা হবে।

উদাহরণ: এলিয়াস ও require ফাংশন

(ns my-namespace
  (:require [clojure.set :as set]))  ; 'clojure.set' কে 'set' নামে এলিয়াস করলাম

(def example-set (set/union #{1 2 3} #{3 4 5}))  ; আউটপুট: #{1 2 3 4 5}

এখানে, আমরা clojure.set নামস্পেসকে set এলিয়াস দিয়ে অন্তর্ভুক্ত করেছি এবং union ফাংশনটি set/union এর মাধ্যমে ব্যবহার করেছি।


৪. Multiple Aliases

একই নামস্পেসে একাধিক এলিয়াস ব্যবহারও সম্ভব। আপনি একাধিক নামস্পেসের জন্য বিভিন্ন এলিয়াস অ্যাসাইন করতে পারেন।

উদাহরণ: একাধিক এলিয়াস ব্যবহার

(ns my-namespace
  (:require [clojure.string :as str]
            [clojure.set :as set]))

(str/join "-" ["Hello" "World"])  ; আউটপুট: "Hello-World"
(set/union #{1 2 3} #{3 4 5})     ; আউটপুট: #{1 2 3 4 5}

এখানে, আমরা দুটি আলাদা নামস্পেস clojure.string এবং clojure.set এর জন্য str এবং set এলিয়াস ব্যবহার করেছি।


৫. Namespace Reflection

ক্লোজারে নামস্পেস রিফ্লেকশন ব্যবহার করে আপনি বর্তমান নামস্পেসের সম্পর্কে তথ্য জানতে পারেন। আপনি জানতে পারবেন কোনো নামস্পেসে কোন ফাংশন বা ভ্যারিয়েবল আছে।

উদাহরণ: Namespace Reflection

(ns my-namespace
  (:require [clojure.string :as str]))

(keys (ns-publics 'clojure.string))  ; আউটপুট: (blank? capitalize join ... )

এখানে, ns-publics ফাংশন ব্যবহার করে আমরা clojure.string নামস্পেসের সমস্ত পাবলিক ফাংশনের নাম দেখতে পাচ্ছি।


সারসংক্ষেপ

  • Fully Qualified Names (FQNs): কোনো ফাংশন বা ভ্যারিয়েবলের সম্পূর্ণ নাম যা নামস্পেস সহ নির্দিষ্ট করা হয় (যেমন: clojure.string/join).
  • Aliases: নামস্পেসে একটি ছোট নাম (shortcut) নির্ধারণ করার জন্য ব্যবহৃত হয়, যা কোড লেখা সহজ করে (যেমন: clojure.string কে str এলিয়াস দেওয়া).
  • require: অন্য নামস্পেস ব্যবহার করার জন্য require ফাংশনটি ব্যবহৃত হয়, যেখানে এলিয়াসও দেওয়া যায়।

এই দুটি বৈশিষ্ট্য, FQNs এবং Aliases, Clojure-এ কোডের পরিচ্ছন্নতা এবং মডুলারিটি বজায় রাখতে সাহায্য করে, বিশেষ করে যখন আপনি অনেক লাইব্রেরি এবং নামস্পেসের সাথে কাজ করছেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion